# -*- coding: utf-8 -*-
from datetime import datetime
from django.contrib.localflavor.br.br_states import STATE_CHOICES
from django.db import models
from django.core.urlresolvers import reverse
from stdimage.fields import StdImageField

PUBLICIDADE_CHOICES = (('1', 'Super Banner'),('2', 'Banner Extra'),('3', 'Mini-Tijolo'),('4', 'Tijolo'),('5', 'Quadrado'))
REGIAO_CHOICES = (('0', 'Centro-Oeste'),('1', 'Norte'),('2', 'Nordeste'),('3', 'Sudeste'),('4', 'Sul'),)

class GaleriaVideos(models.Model):
    titulo=models.CharField('Título',max_length=100)
    url=models.CharField('Link do vídeo',max_length=200)
    data = models.DateTimeField('Data de publicação',default=datetime.now)
    autor = models.CharField(max_length=50)
    class Meta:
        verbose_name_plural = 'Galeria de vídeos'
    def __unicode__(self):
        return self.titulo

class GaleriaFotos(models.Model):
    titulo = models.CharField('Título',max_length=50)
    imagem = StdImageField(upload_to='media',size=(550,366))
    data = models.DateTimeField('Data de publicação',default=datetime.now)
    autor = models.CharField(max_length=50)
    comentario = models.CharField('Comentário',max_length=255)
    class Meta:
        verbose_name_plural = 'Galeria de imagens'
    def __unicode__(self):
        return self.titulo

class Estado(models.Model):
    nome = models.CharField(max_length=2, choices=STATE_CHOICES)
    regiao = models.CharField(max_length=2, choices=REGIAO_CHOICES)

    class Meta:
        verbose_name_plural = "Estados"
    def __unicode__(self):
        return self.nome


class Colaborador(models.Model):
    publicar=models.BooleanField(default=True)
    nome=models.CharField(max_length=50)
    cargo=models.CharField(max_length=50)
    email=models.EmailField()
    telefone=models.CharField(max_length=12,help_text='XX-XXXX-XXXX')
    thumbs=StdImageField(upload_to='thumb',help_text='85px-85px')
    descricao=models.TextField()
    orkut=models.URLField("Orkut", blank=True, null=True)
    twitter=models.URLField("Twitter", blank=True, null=True)
    facebook=models.CharField(max_length=200, blank=True, null=True)
    linkedin=models.URLField("LinkedIn", blank=True, null=True)
    google=models.CharField(max_length='200',blank=True,null=True)
    data = models.DateTimeField('Data de publicação',default=datetime.now)
    publicar=models.BooleanField(default=True)

    class Meta:
        verbose_name_plural = "Colaboradores"
    def __unicode__(self):
        return self.nome

class Noticias(models.Model):
    destaque=models.BooleanField(default=True)
    publicar=models.BooleanField(default=True)
    estado=models.ForeignKey(Estado)
    titulo = models.CharField('Título',max_length=100)
    subtitulo = models.CharField(max_length=200)
    chamada = models.CharField(max_length=50)
    autor = models.ForeignKey(Colaborador)
    conteudo = models.TextField('Conteúdo')
    dica = models.CharField(max_length=200, blank=True, null=True)
    data = models.DateTimeField('Data de publicação',default=datetime.now,blank=True)
    imagem_destaque=StdImageField(upload_to='noticia')
    imagens = models.ManyToManyField(GaleriaFotos,blank=True,null=True)
    videos = models.ManyToManyField(GaleriaVideos,blank=True,null=True)
    fonte = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100,blank=True)



    class Meta:
        verbose_name_plural = 'Cadastro de notícias'
    def __unicode__(self):
        return self.titulo

class Parceiro(models.Model):
    class Meta:
        verbose_name_plural = "Cadastro de parceiros"
    nome = models.CharField(max_length=50)
    logo=models.ImageField(upload_to='consultor')
    publicar=models.BooleanField(default=True)
    data_entrada=models.DateTimeField(default=datetime.now)
    def __unicode__(self):
        return self.nome

class Publicidade(models.Model):
    class Meta:
        verbose_name_plural = "Inserir publicidades"
    nome=models.CharField("Nome",max_length=100)
    arquivo=models.FileField(upload_to='Publicidade')
    data_entrada=models.DateTimeField("Data de entrada",default=datetime.now)
    data_saida=models.DateTimeField("Data de saída")
    tipo=models.CharField('Tipo da publicidade', max_length=2, choices = PUBLICIDADE_CHOICES)
    url=models.URLField("Site da publicidade", blank=True, null=True)
    def __unicode__(self):
        return self.nome


#SIGNALS
from django.db.models import signals
from django.template.defaultfilters import slugify

def noticias_pre_save(signal, instance, sender, **kwargs):
    instance.slug = slugify(instance.titulo)

signals.pre_save.connect(noticias_pre_save, sender=Noticias)